Release 10.1A: OpenEdge Development:
Messaging and ESB


OpenEdge Adapter for SonicMQ

The OpenEdge Adapter for SonicMQ makes it possible for 4GL programmers, working with familiar Progress 4GL syntax and tools, to write applications that use JMS messaging to send messages to and receive messages from applications written in the 4GL or other languages.The OpenEdge Adapter for SonicMQ implements a robust 4GL-JMS API that provides access to almost all JMS messaging methods and functions from 4GL client applications. GUI, character-based, AppServer, and WebSpeed 4GL applications on all platforms supported for 4GL clients can participate in exchanging JMS messages.

A 4GL application written to take advantage of the 4GL-JMS API can talk with another application without knowing whether it is a 4GL or a non-4GL application. Java features are mapped to the Progress 4GL; for example, Java Enumeration Objects map to comma-separated lists in the Progress 4GL. In a Progress 4GL-to-4GL messaging situation, an application can package 4GL data within standard messages, for example, to send a temp table or a table.

The API is strongly integrated with the 4GL programming model and style. Applications use the Progress 4GL event model. 4GL procedures represent the JMS connection, Session objects, and Message objects. The 4GL programmer uses the methods in these objects for JMS message delivery, acknowledgement, and recovery. All objects are persistent procedures. The API supports the basic types of JMS messaging, Unified Domain, Point-to-Point (PTP) and Publish and Subscribe (Pub/Sub). 4GL applications can extend local publish and subscribe for distributed applications. For information on the OpenEdge Adapter for SonicMQ architecture, see OpenEdge Getting Started: Application and Integration Services .

OpenEdge Adapter for SonicMQ configuration and management

The OpenEdge Adapter for SonicMQ allows OpenEdge applications to communicate via JMS Messaging through SonicMQ. The OpenEdge Adapter for SonicMQ consists of three connection modes:

For information on the OpenEdge Adapter for SonicMQ architecture, see OpenEdge Getting Started: Application and Integration Services .

OpenEdge Adapter for SonicMQ operation

Table 1–1 shows operation features for each connection mode.

Table 1–1: Adapter features 
Feature
BrokerConnect
ClientConnect
ServerConnect
Unified Domain
Yes
Yes
Yes
Client Persistence
No
Yes
Yes
Fault Tolerance
No
Yes
Yes
Message Selectors
Yes
Yes
Yes
Serialized Connections
Yes
Yes
Yes
Temporary Queues and Topics
Yes
Yes
Yes

To establish a connection and start a session, the client application identifies connection options as an argument to the ptpsession, pubsubsession, jmssession procedure (depending on the chosen JMS messaging domain), specifies the appropriate SonicMQ Broker as an argument to the setBrokerURL procedure, and runs the beginSession procedure.

Messages are processed when the application is in a WAIT-FOR or other IO-blocking state. Non-UI applications, such as AppServer processes or batch processes that cannot use WAIT FOR, can use the waitForMessages procedure, as can all GUI, character, AppServer, WebSpeed, and batch applications. Applications use the existing Progress 4GL error-handling mechanisms to deal with 4GL-JMS errors.

After the application finishes executing, it calls deleteSession procedure to free adapter resources for use by other clients.

License availability

Your OpenEdge license agreement with Progress Software Corporation might limit the number of concurrent sessions that can exist between clients and the OpenEdge Adapter for SonicMQ. If so, the limit is programmatically enforced, meaning that users may encounter error conditions preventing them from running client applications.

If the OpenEdge Adapter for SonicMQ resources available under your organization’s license agreement are not sufficient to meet your usage requirements, please contact your Progress sales representative for information about options for increasing capacity.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095